This invention is related to an improved CAD/CAM feature tree for use in identifying and selecting features in an object model.
In computerized design tools, such as CAD, CAM, and CAE systems, a user is able to define and modify the geometry of a three dimensional object. The object is typically built of many different features, such as blocks, holes, fillets, etc., which are added to the object and successively modify its overall shape. Each feature is generally assigned a unique ID and, for a given object, the set of features which defines it is called the feature model.
A geometric modeler is used to translate the various features in an model, along with the attached geometric information, such as a feature""s dimensions, into an overall model geometry. A three dimensional visual display of the model is generated by building a display model of the model geometry using tessellation, which divides the model geometry into a set of triangles for display purposes, or other techniques, such as voxel-based visualization. Once the model has been tessellated, a transformation matrix which defines object rotation, translation, and zoom, is applied to the display model and the image is displayed on the screen.
Often, a user will need to view an entire model and then select a particular feature in the model to edit. In conventional CAD/CAM/CAE systems, each of the various types of features in the model, such as part, hole, boss, are associated with a predefined two-dimensional icon and the various features in the model are represented in a specification tree format which lists each feature, via its 2D icon, and generally how that feature relates to higher and lower level object definitions. For example, all the xe2x80x9cextruded featuresxe2x80x9d will be represented by the same family icon, regardless of the geometry which results from the extrusion, and all the holes will have the same family icon representation in the tree, regardless of the final shape of the hole.
To modify an element, a user can select the element by selecting the corresponding icon in the feature tree. This method of representing the construction of the object may be convenient since it represents the general set of the added features. However, when geometry of the object is very complex, for example a gear box, it can be difficult for a user to select a particular feature to modify. In the graphical window which shows a rendition the object, various features may be partially or wholly obscured or their effects overlapping. Feature selection is further complicated because the 2D icons are assigned according to the feature type (e.g., Part, Hole, Boss . . . ) and all features of the same type or family are shown in the tree using the same icon. This makes selection of a specific feature from a number of features in the same family or of the same type difficult because each feature will appear the same in the tree. Similarly, is difficult to select in a complex part topological information of a feature which is buried into the model""s final geometry.
A further drawback to conventional feature tree representations is that the icons are two-dimensional in nature. Even if a standard feature tree icon generally resembles the feature as it is shown in a rendition of the object (and assuming that the feature has not been modified from its default configuration a substantial degree), the computer will permit a user to perform 3D rotations of the object. As an object is rotated, each of the features of the object are rotated as well, passing in and out of view and changing orientation. This changing representation can increase the difficulty of identifying and selecting a specific feature to modify.
Some attempts have been made to simplify the use of feature trees to select object features. However, these attempts can be cumbersome for the user to employ and are limited in nature. For example, one conventional system allows limited customization of the feature specifications in the tree by permitting the user to assign a name to a specific feature icon so that the icon can be easily identified in the future. However, the user must manually name each specific features which is to be tracked.
In another system, a user can make a feature selection by clicking in the graphical window approximately where the feature should be. The system highlights one of the corresponding features and, through the use of a clipping plane each time the user clicks, highlights a different geometry until the right one is selected. Yet another system provides a separate selection navigator which allows a user, through the user of the graphical window and the feature tree, to navigate between topologically linked features until the desired feature is located. However, both of these other systems can require many mouse clicks or other actions to locate the desired feature. Further, in all systems, the object representation in the graphical window is not the same as the representation in the feature tree, making it difficult to determine if the selected feature is the desired one. The difficulty is compounded when a modification has to be done by a user who did not design the initial part.
Accordingly, there is a need for an improved system and method for displaying the features of a complex three-dimensional object which simplifies the identification and selection of features.
These and other needs are met by the present invention in which a feature tree is provided with icons that are three-dimensional miniatures derived from the actual features present in the object model that the icon represents. Each 3D miniature corresponds to a specific feature in the object. Displayed 3D miniatures can be shown from a rotation which matches the object rotation used in the graphical window. As the object is rotated, the rotation of the miniatures changes accordingly. The zoom factor of the miniature can also be adjusted relative to the zoom of the corresponding feature in the object model.
A specific feature in the object can be selected by selecting the corresponding miniature in the feature tree. By customizing each miniature to match to match its corresponding feature, a user can easily identify the miniature for a given feature, even if all the features are in the same family. Advantageously, because the tree shows the exact geometry of each of the object""s features (or a suitable representation for non-geometric feature), it provides a better representation of those features and how the model has been built, simplifying selection of a desired feature.
According to a further aspect of the invention, a user can apply geometric transformations to a miniature by, e.g., rotating and translating the miniature to better allow the feature to be explored and scaling or zooming the miniature to alter its size relative to other miniatures and the main object.
According to yet another feature of the invention, various object editing commands, such as creating, modifying, or deleting a feature, can be performed directly through the 3D miniature feature tree. Because the miniatures correspond directly to features in the actual object, the object model being edited does not need to be shown in the display window for the user to select and edit the desired feature. As a result, the object does not need to be continuously rendered for display, reducing the computational needs of the editing software as well as freeing screen real-estate for the display of additional miniatures or other items. In addition, actions can be performed on the miniatures and subsequently applied to the corresponding features in the model. Because the miniatures are not cluttered by surrounding features, as the case in the model display, it can be easier to select aspects, such as edges or faces, in a miniature, than selecting these elements in the model itself.